// utils/clipboard.ts
export const copyToClipboard = async (text: string): Promise<void> => {
  try {
    // 检查是否支持 navigator.clipboard API
    if (!navigator.clipboard) {
      throw new Error('浏览器不支持Clipboard API');
    }
    
    await navigator.clipboard.writeText(text);
    return Promise.resolve();
  } catch (error) {
    console.error('复制到剪贴板失败:', error);
    
    // 尝试使用传统方法作为备选
    try {
      const textArea = document.createElement('textarea');
      textArea.value = text;
      textArea.style.position = 'fixed';
      textArea.style.left = '-999999px';
      textArea.style.top = '-999999px';
      document.body.appendChild(textArea);
      textArea.focus();
      textArea.select();
      
      const successful = document.execCommand('copy');
      document.body.removeChild(textArea);
      
      if (successful) {
        return Promise.resolve();
      } else {
        return Promise.reject(new Error('复制失败'));
      }
    } catch (fallbackError) {
      console.error('备选复制方法也失败:', fallbackError);
      return Promise.reject(fallbackError);
    }
  }
};